Initialize export of point site data
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | pointfile |
file containing coordinate of points |
||
character(len=*), | intent(in) | :: | path_out |
path of output folder |
||
type(DateTime), | intent(in) | :: | time |
start time |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=short), | public | :: | err_io | ||||
integer(kind=short), | public | :: | fileunit |
SUBROUTINE SnowPointInit & ! ( pointfile, path_out, time ) IMPLICIT NONE !Arguments with intent (in): CHARACTER (LEN = *), INTENT(IN) :: pointfile !!file containing coordinate of points CHARACTER (LEN = *), INTENT(IN) :: path_out !!path of output folder TYPE (DateTime), INTENT(IN) :: time !!start time !local declarations INTEGER (KIND = short) :: err_io INTEGER (KIND = short) :: fileunit !-------------------------end of declarations---------------------------------- timePointExport = time !open point file fileunit = GetUnit () OPEN ( unit = fileunit, file = pointfile(1:LEN_TRIM(pointfile)), & status='OLD', iostat = err_io ) IF ( err_io /= 0 ) THEN !file does not exist CALL Catch ('error', 'Snow', 'out point file does not exist') END IF !Read metadata CALL ReadMetadata (fileunit, sites) !check dt IF (.NOT. ( MOD ( sites % timeIncrement, dtSnow ) == 0 ) ) THEN CALL Catch ('error', 'Snow', 'dt out sites must be multiple of dtSnow ') END IF CLOSE ( fileunit ) !create virtual network and initialize file for output fileUnitPointSWE = GetUnit () OPEN ( unit = fileUnitPointSWE, & file = TRIM(path_out) // 'point_swe.fts' ) CALL CopyNetwork ( sites, sitesSWE ) sitesSWE % description = 'snow water equivalent data exported from FEST' sitesSWE % unit = 'mm' sitesSWE % offsetZ = 0. CALL WriteMetadata ( network = sitesSWE, & fileunit = fileUnitPointSWE ) CALL WriteData (sitesSWE, fileUnitPointSWE, .TRUE.) ! destroy sites CALL DestroyNetwork ( sites ) RETURN END SUBROUTINE SnowPointInit